In many computer business systems, tasks are monitored so that the status, health, and efficiency of the computer system can be determined. However, many a time, the monitoring of tasks for system developers is not the same as the monitoring of tasks for users or customers of the computer system.
For example when monitoring the start time or expected start time of a task, a developer has to know the exact time in order to know when to run the task. Users of the system also need to know the start time or expected start time of a task, but more important to such users is when they can obtain the calculations, results, or other output of the tasks.
As another example, when a task fails to run properly and/or completely, the task can be rerun or retried. If it runs successfully in the rerun, the task may still successfully complete before the expected end time of the task. In this situation, the user probably does not care about the unsuccessful first try or the errors associated therewith. The user is simply pleased that they obtained their results on time. The developer on the other hand needs to be aware of the error and needs to investigate the error to determine the cause of the error and a fix for the error.
Alternatively, a task can run successfully, but finish executing after its expected end time. From the developer's viewpoint, the task executed successfully because no errors occurred during execution. However, from the user's viewpoint, there was a problem because they did not receive their results on time, and something must be done to address this situation.
Similarly, when tasks are executing, alert messages can be generated. Such alert messages can be useful to the developer because they report on the status of a task. For a user however, they only want the results of the task and they want those results on time.